//
// Created by shkstart on 2023/8/24.
// 变量的定义与使用

#include <stdio.h>

/*
 * 1. 变量构成的三要素：数据类型 、 变量名 、 变量值
 *
 * 2. 变量的声明格式：数据类型 变量名 = 变量值;
 *
 * 3. 使用变量的注意点：
 *      - C语言中每个变量必须先声明，后使用。
        - 不同的数据类型，占用的空间大小不一样。
        - 一旦声明，变量的类型就不能在运行时修改。

 * 4. 变量的作用域：
 *      - 变量的作用域：其定义所在的一对{ }内。
        - 变量只有在其`作用域`内才有效。出了作用域，变量不可以再被调用。
        - 同一个作用域内，不能定义重名的变量。
        - C 语言的变量作用域主要有两种：文件作用域（file scope）和块作用域（block scope）。

 * 5. 变量按数据类型的分类：
 *      > 基本数据类型
 *          > 整型： short \ int \ long
 *          > 浮点型：float \ double
 *          > 字符型：char
 *          > 后续新增的类型： 整型：long long   浮点型：long double  布尔类型：_Bool
 *      > 构造类型
 *      > 指针类型
 *      > void类型
 *
 * */
int main(){
    //1.1变量的声明
    int num1;
    int num2;

    //1.2 变量的赋值（或初始化）
    num1 = 10;
    num2 = 20;

    //合并：变量在声明的同时，进行赋值（或初始化）
    int num3 = 30;

    //2. 变量的使用（必须在使用之前对变量进行初始化）
    num3 = num3 + 1;
    printf("num3 = %d\n",num3);

    //反例
//    int num4;
//    printf("num4 = %d\n",num4); //不能在初始化变量之前，使用变量！！


    //在同一个作用域内，不能命名同名的变量。
//    int num1 = 100;

    for(int i = 1;i <= 10;i++){
        printf("i = %d\n",i);
    }

//    printf("i = %d\n",i); //超出了i的作用域

    return 0;
}

//其它函数
int func(){
//    printf("num1 = %d\n",num1); //超出了num1的作用域
    return 0;
}